Software Cartography and Code Navigation
نویسنده
چکیده
Despite common belief, software engineers do not spend most time writing code. It has been shown that an approximate 50–90% of development time is spent on code orientation, that is navigation and understanding of source code. This may include reading of local source code and documentation, searching the internet for code examples and tutorials, but also seeking help of other developers. In this dissertation we argue that, in order to support software engineers in code navigation and understanding, we need development tools that provide first-class support for the code orientation clues that developers rely on. We argue further that development tools need to tap unconventional information found in the source code in order to provide developers with code orientation clues that would be out of their reach without tool support. In a qualitative user study we identify four fundamental categories of orientation clues that developers use for code navigation and code understanding: lexical clues referring to identifier names and concepts, social clues referring to a developer’s personal network and to internet communities, episodic clues referring to personal first-hand memories of a developer, and spatial clues referring to the system’s architecture or to source code’s on-screen position as displayed by development tools. We introduce the following approaches that tap unconventional information found in the source code in order to better support code orientation: The EvoCloud tool uses lexical information found in source code to summarize parts of a system, the whole system, or even the system’s entire evolution. The Hapax tool clusters software systems using lexical information found in source code. The Chronia tool addresses the episodic memory of developers by providing them with a visualization that tells the story of the team collaboration as recorded by the version control system. The Devlect tool uses lexical information found in contributions that developers shared with open source systems to build a recommendation model for bug reports. The Bender tool uses cross-project collaboration of developers in open source projects to estimate the credibility of code search results. Among the code orientation strategies used by developers, spatial clues stand out for not having a first-class representation in the ecosystem of source code. Therefore, we introduce Software Cartography, an approach to create spatial onscreen visualization of software systems based on non-spatial properties. Software maps are stable over time, embedded in the development environment, and can be shared among teams. We implement the approach in the CodeMap tool and evaluate it in a qualitative user study. We show that software maps are most helpful to explore search results and call hierarchies.
منابع مشابه
Towards Improving the Mental Model of Software Developers through Cartographic Visualization
Software is intangible and knowledge about software systems is typically tacit. The mental model of software developers is thus an important factor in software engineering. It is our vision that developers should be able to refer to code as being “up in the north”, “over in the west”, or “down-under in the south”. We want to provide developers, and everyone else involved in software development...
متن کاملMap Design for Navigation Purposes
Small display cartography is one of the most important subjects of the cartographers since the microcomputer technology develops. Navigation map design for different purposes is considered in this concept. In this paper, map design requirements for navigation and its constraints were explained in terms of small display cartography. Maps used for navigation purposes examined in terms of Multiple...
متن کاملAutomatic Update of Road Attributes by Mining GPS Tracks
Despite advancements in cartography, mapping is still a costly process which involves a substantial amount ofmanual work. This paper presents amethod to automatically derive road attributes by analyzing and mining movement trajectories (e.g. GPS tracks). We have investigated the automatic extraction of eight road attributes: directionality, speed limit, number of lanes, access, average speed, c...
متن کاملLocation-based mobile pedestrian navigation the role of multimedia cartography
In this chapter map-based location based services (LBS) ar basic elements (positioning, information modelling and presentation, the u tion), the state of the art of current systems and the main fields of resear ences in terms of fundamental research (potential of cartographic presen (active landmarks), modelling and visualization (guiding and navigation for
متن کاملReal Time Mapping with Dgps-enabled Navigation Equipment
Today, differential GPS techniques allow common GPS receivers to achieve the precision levels required for mapping purposes. The development of systems for mobile Internet access (mainly GPRS) provides a fast and reliable method for feeding differential corrections to a GPS receiver in any area covered by a cell telephone network. With the increase in the available bandwidth, and the example of...
متن کامل